// 题目要求：
// 给定一个整数 n，再给定 n 个整数
// 找一个队形，假设以 i 位置为基准，左边的元素都比 i 位置元素小，右边元素都比 i 位置元素大
// 0 <= i <= n
// 求队形之外还有几个数？

// 解题思路：
// 定义 f[i]，表示以 i 为结尾的 [0, i] 区间中最长递增子序列的长度
// g[i] 表示以 i 位置为开始，[i, n - 1] 区间中最长递减子序列的长度
// 如果 f[i] > f[j], f[i] = min(f[i], f[j] + 1) j < i
// 如果 g[i] < g[j], g[i] = min(g[i], g[j] + 1) j > i

import java.util.*;


public class Formation {
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);

        int n = in.nextInt();
        int[] height = new int[n];

        for(int i = 0; i < n; i++){
            height[i] = in.nextInt();
        }

        // f[i] 表示 [0, i] 区间以 i 位置为结尾的最长递增子序列
        int[] f = new int[n];
        // g[i] 表示 [i, n - 1] 区间以 i 位置为开始的最长递减子序列
        int[] g = new int[n];

        Arrays.fill(f, 1);
        Arrays.fill(g, 1);


        for(int i = 1; i < n; i++){
            for(int j = 0; j < i; j++){
                if(height[i] > height[j]){
                    f[i] = Math.max(f[i], f[j] + 1);
                }
            }
        }

        for(int i = n - 1; i >= 0; i--){
            for(int j = n - 1; j > i; j--){
                if(height[i] > height[j]){
                    g[i] = Math.max(g[i], g[j] + 1);
                }
            }
        }

        int max = 0;
        for(int i = 0; i < n; i++){
            int len = f[i] + g[i] - 1;
            if(max < len){
                max = len;
            }
        }

        System.out.println(n - max);
    }
}
